1. Field of the Invention
The present invention relates to electrically programmable antifuses for use in integrated circuits. More specifically, the present invention relates to circuitry for programming an array of antifuses which avoids inadvertently programming unselected antifuses.
2. The Prior Art
A typical antifuse structure contains an insulating dielectric material sandwiched between two conductive electrodes. When programming one antifuse in an array of antifuses, protecting other unprogrammed antifuses from being accidentally programmed is a very important consideration.
In a PROM (programmable read only memory) array where every antifuse is in series with one transistor, the antifuse to be programmed is selected by turning on the transistor in series with the antifuse. All other transistors remain turned off. However, substrate leakage current generated during the programming of one selected antifuse may cause other antifuses to be programmed unintentionally.
The problem becomes more difficult when a plurality of antifuses are used as programmable interconnect elements in a gate array structure where no active transistors are placed in series with the individual antifuses. When utilized in such an array as an interconnect element, the antifuse to be programmed is selected by applying a programming voltage (V.sub.pp) across the antifuse electrodes. The voltage drop V.sub.pp across the antifuse will cause the antifuse dielectric to rupture, forming a conducting path between the two electrodes.
To protect antifuses which are intended to remain unprogrammed, a dynamic precharge step may be used to place a voltage, V.sub.pre, equal to approximately V.sub.pp /2, on all other nodes so that the ideal voltage drop across an antifuse which is to remain unprogrammed is V.sub.pp /2 during programming of a selected antifuse. The voltage value of V.sub.pre is selected as V.sub.pp /2 so that the unprogrammed antifuse will not be programmed.
In the real-world circuit implementation, the actual precharge voltage applied may not be V.sub.pp /2 but may be based on an optimization scheme that balances the overall voltage stress on the unprogrammed antifuses. This is necessary because in the real circuit operation, the V.sub.pp /2 voltage, which is a dynamic precharged voltage rather than an actively applied voltage, cannot be held constant. One reason is that high voltage V.sub.pp may induce field transistor leakage or N+ junction leakage which results in changes in the precharged voltage value. This leakage will cause additional stress on the antifuses to remain unprogrammed and will result in a higher probability of unintended antifuse programming.
Another reason that the dynamic voltage V.sub.pp /2 may change is because of capacitive coupling between metal lines. For example, if a metal line switches between 0 V and V.sub.pp, it will capacitively couple to the adjacent lines. If these lines are dynamically precharged to a voltage such as V.sub.pp /2, the capacitive coupling will alter their precharged voltage.
One approach to reduce the field transistor leakage current is to apply a source bias voltage V.sub.sb to the field transistor to increase its threshold voltage, V.sub.t, and thereby reduce its leakage current. This is the approach adopted for the Act 10XX product family of integrated circuits manufactured by Actel Corporation, assignee of the present patent application.
There are two limitations to using the source bias approach. The first is that source bias does not control the junction leakage current. Therefore, every junction has to be pre-stressed to ensure the integrity, and yield loss is inevitable, Another limitation is that when source bias is used, the antifuse programming voltage is dropped from V.sub.pp (V.sub.pp -0) to V.sub.pp -V.sub.sb. Reducing the programming voltage increases the programming time. When the integrated circuit containing the antifuses is small, the additional programming time may be tolerated. However, as the number of antifuses on the integrated circuit increases, the number of antifuses to be programmed also increases. At some point, the increase in density becomes so great that the corresponding increase in programming time becomes unacceptable.